/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package gui;

import java.util.List;
import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.DefaultListModel;
import javax.swing.JOptionPane;
import modelo.JlistModeloPedidos;
import persistencia.ClientesDAO;
import persistencia.FacturasDAO;
import persistencia.PedidosDAO;
import pojos.Albaran;
import pojos.Articulos;
import pojos.Cliente;
import pojos.Empleados;
import pojos.Facturas;
import pojos.Gestiona;
import pojos.GestionaId;
import pojos.Lineasfact;
import pojos.Lineasped;
import pojos.Pedido;
import pojos.Proveedor;

/**
 *
 * @author dam2a
 */
public class JDialogAddFactura extends javax.swing.JDialog {

    ClientesDAO gesClientes;
    DefaultListModel modeloLista=new DefaultListModel();
    PedidosDAO gesPedidos;
    FacturasDAO gesFacturas;
    public JDialogAddFactura(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        gesPedidos=new PedidosDAO();
        gesClientes=new ClientesDAO();
        gesFacturas=new FacturasDAO();
        rellenarComboBox();
        
        
         
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLayeredPane1 = new javax.swing.JLayeredPane();
        jLabel1 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jLabelCliente = new javax.swing.JLabel();
        jLabelAlbaran = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabelImporteTotal = new javax.swing.JLabel();
        jComboBoxClientes = new javax.swing.JComboBox();
        jLabel2 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jComboBoxListaArticulos = new javax.swing.JComboBox();
        jTextFieldCantidadArticulos = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jButtonAddArticulo = new javax.swing.JButton();
        jButtonDeleteArticulo = new javax.swing.JButton();
        jScrollPane2 = new javax.swing.JScrollPane();
        jListLineasDeFactura = new javax.swing.JList();
        JLabelImporteArticulo = new javax.swing.JLabel();
        jButtonCancelar = new javax.swing.JButton();
        jButtonOk = new javax.swing.JButton();

        javax.swing.GroupLayout jLayeredPane1Layout = new javax.swing.GroupLayout(jLayeredPane1);
        jLayeredPane1.setLayout(jLayeredPane1Layout);
        jLayeredPane1Layout.setHorizontalGroup(
            jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );
        jLayeredPane1Layout.setVerticalGroup(
            jLayeredPane1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 24)); // NOI18N
        jLabel1.setText("NUEVA FACTURA");

        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabelCliente.setText("Cliente:");

        jLabelAlbaran.setText("Lineas de Factura:");

        jLabel3.setText("Importe Total:........................................");

        jLabelImporteTotal.setText("0€");

        jLabel2.setText("Articulos:");

        jLabel5.setText("Cantidad:");

        jComboBoxListaArticulos.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));

        jTextFieldCantidadArticulos.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTextFieldCantidadArticulosKeyPressed(evt);
            }
        });

        jLabel6.setText("Importe:");

        jLabel7.setText("€");

        jLabel8.setText("Uds.");

        jButtonAddArticulo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/iconos/addtocart.png"))); // NOI18N
        jButtonAddArticulo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonAddArticuloActionPerformed(evt);
            }
        });

        jButtonDeleteArticulo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/iconos/deletetocart.png"))); // NOI18N
        jButtonDeleteArticulo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonDeleteArticuloActionPerformed(evt);
            }
        });

        jScrollPane2.setViewportView(jListLineasDeFactura);

        JLabelImporteArticulo.setText("0");

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(27, 27, 27)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabelAlbaran)
                        .addGap(0, 369, Short.MAX_VALUE))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabelCliente)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jComboBoxClientes, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabelImporteTotal))
                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel1Layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addComponent(jScrollPane2)
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jButtonAddArticulo)
                            .addComponent(jButtonDeleteArticulo))))
                .addGap(46, 46, 46))
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGap(56, 56, 56)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2)
                    .addComponent(jLabel6)
                    .addComponent(jLabel5))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jTextFieldCantidadArticulos, javax.swing.GroupLayout.PREFERRED_SIZE, 56, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(JLabelImporteArticulo))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel7)
                            .addComponent(jLabel8)))
                    .addComponent(jComboBoxListaArticulos, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(71, 71, 71))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(30, 30, 30)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabelCliente)
                            .addComponent(jComboBoxClientes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addComponent(jLabelAlbaran)
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel2)
                            .addComponent(jComboBoxListaArticulos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(11, 11, 11)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jTextFieldCantidadArticulos, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel8))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(JLabelImporteArticulo))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(jLabel5)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(jLabel6)
                                    .addComponent(jLabel7))))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(194, 194, 194)
                        .addComponent(jButtonAddArticulo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jButtonDeleteArticulo)))
                .addGap(18, 18, 18)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jLabelImporteTotal))
                .addGap(79, 79, 79))
        );

        jButtonCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/iconos/ico_cancel.png"))); // NOI18N
        jButtonCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonCancelarActionPerformed(evt);
            }
        });

        jButtonOk.setIcon(new javax.swing.ImageIcon(getClass().getResource("/iconos/ico_check.png"))); // NOI18N
        jButtonOk.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonOkActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(68, 68, 68)
                .addComponent(jButtonCancelar)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jButtonOk)
                .addGap(67, 67, 67))
            .addGroup(layout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel1)
                    .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(19, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel1)
                .addGap(34, 34, 34)
                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 337, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 33, Short.MAX_VALUE)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButtonCancelar)
                    .addComponent(jButtonOk))
                .addGap(25, 25, 25))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jButtonCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonCancelarActionPerformed
        int opcion;
        String[] opciones = {"Aceptar","Cancelar"};
        opcion=JOptionPane.showOptionDialog(this, "¿Seguro que quieres cancelar la creación de la nueva factura?", "Información",JOptionPane.DEFAULT_OPTION,JOptionPane.WARNING_MESSAGE,null,opciones,"Cancelar");
        if (opcion == 0) {
                
        }else{
                JOptionPane.showMessageDialog(this, "Se ha cancelado el alta de la factura", "Información", JOptionPane.INFORMATION_MESSAGE);
            }
        this.dispose();
    }//GEN-LAST:event_jButtonCancelarActionPerformed

    private void jButtonOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOkActionPerformed
        completarFactura();
        JOptionPane.showMessageDialog(this, "Se ha generado una nueva factura", "Información", JOptionPane.INFORMATION_MESSAGE);
        
    }//GEN-LAST:event_jButtonOkActionPerformed

    private void jButtonAddArticuloActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonAddArticuloActionPerformed
        if((this.jTextFieldCantidadArticulos.getText()).isEmpty())
        {
            JOptionPane.showMessageDialog(this,"NO PUEDES AÑADIR AL CARRITO UN PRODUCTO SIN CANTIDAD","ERROR",JOptionPane.ERROR_MESSAGE);
        }
        else{
            addArticuloLista();
            calcularTotalArticulos();
        }
    }//GEN-LAST:event_jButtonAddArticuloActionPerformed

    private void jButtonDeleteArticuloActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonDeleteArticuloActionPerformed
        removeArticuloLista();
        calcularTotalArticulos();
    }//GEN-LAST:event_jButtonDeleteArticuloActionPerformed

    private void jTextFieldCantidadArticulosKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextFieldCantidadArticulosKeyPressed
        calcularPrecioArticulo();
    }//GEN-LAST:event_jTextFieldCantidadArticulosKeyPressed
    private void calcularPrecioArticulo()
    {
        try{
            Integer numUnidades=Integer.parseInt(this.jTextFieldCantidadArticulos.getText());
            Articulos articuloSeleccionado=(Articulos)this.jComboBoxListaArticulos.getSelectedItem();
            
            Integer precioTotalArticulo=numUnidades*articuloSeleccionado.getPrecio();
            
            this.JLabelImporteArticulo.setText(precioTotalArticulo.toString());
            
        }catch(NumberFormatException e)
        {
            JOptionPane.showMessageDialog(this,"NO PUEDES INTRODUCIR EN ESTE CAMPO LETRAS","ERROR DE FORMATO",JOptionPane.ERROR_MESSAGE);
            this.jTextFieldCantidadArticulos.setText(null);
            this.JLabelImporteArticulo.setText("0");
        }
    }
    
    private void rellenarComboBox()
    {
        
        List<Articulos> articulosRecuperados=this.gesPedidos.getArticulos();
        DefaultComboBoxModel modeloListaArticulos=new DefaultComboBoxModel();
        
        for (int i = 0; i < articulosRecuperados.size(); i++) {
            
            Articulos nuevoArticulo=new Articulos();
            
            nuevoArticulo.setIdArticulo(articulosRecuperados.get(i).getIdArticulo());
            nuevoArticulo.setDescripcion(articulosRecuperados.get(i).getDescripcion());
            nuevoArticulo.setCantidad(articulosRecuperados.get(i).getCantidad());
            nuevoArticulo.setPrecio(articulosRecuperados.get(i).getPrecio());
            
            
            modeloListaArticulos.addElement(nuevoArticulo);
            
        }
        
        this.jComboBoxListaArticulos.setModel( modeloListaArticulos);
        
        List<Cliente> listaClientes=gesClientes.getClientes();
        
        DefaultComboBoxModel modeloComboBoxClientes=new DefaultComboBoxModel();
        
        for (int i = 0; i < listaClientes.size(); i++) {
            modeloComboBoxClientes.addElement(listaClientes.get(i));
            
        }
        
        this.jComboBoxClientes.setModel(modeloComboBoxClientes);
    }
    
    //ESTE METODO ELIMINA UN ARTICULO DE LA LISTA
    private void removeArticuloLista()
    {
        try{ 
        int articuloElminar=this.jListLineasDeFactura.getSelectedIndex();
        modeloLista.remove(articuloElminar);
        this.jListLineasDeFactura.setModel(modeloLista);
       }catch(ArrayIndexOutOfBoundsException e)
       {
           JOptionPane.showMessageDialog(this,"DEBES SELECCIONAR UN ARTICULO DE LA LISTA PARA PODER QUITARLO","ERROR",JOptionPane.ERROR_MESSAGE);
       }
    }
    
    private void addArticuloLista()
    {
      Integer posicion=incluidoEnLista(((Articulos)this.jComboBoxListaArticulos.getSelectedItem()).getDescripcion());
        
      if(posicion!=0)
      {
          JlistModeloPedidos modeloModificado=(JlistModeloPedidos)modeloLista.get(posicion);
          Integer cantidad=Integer.parseInt(modeloModificado.getCantidad())+Integer.parseInt(this.jTextFieldCantidadArticulos.getText());
          Integer Importe=Integer.parseInt(modeloModificado.getImporteTotalArticulo())+Integer.parseInt(this.JLabelImporteArticulo.getText());
          
          modeloModificado.setCantidad(cantidad.toString());
          modeloModificado.setImporteTotalArticulo(Importe.toString());
          
          modeloLista.remove(posicion);
          modeloLista.insertElementAt(modeloModificado, posicion);
          this.jListLineasDeFactura.setModel(modeloLista);
          
      } 
      else{
            JlistModeloPedidos modeloDato = new JlistModeloPedidos((Articulos) this.jComboBoxListaArticulos.getSelectedItem(),this.jLabelImporteTotal.getText(), this.jTextFieldCantidadArticulos.getText());
            modeloLista.addElement(modeloDato);
            this.jListLineasDeFactura.setModel(modeloLista);
        }
    }
    private Integer incluidoEnLista(String nombreArticulo)
    {
        Integer posicionLista=0;
        String articuloBuscar=nombreArticulo;
        
        
        
        for (int i = 0; i <modeloLista.size(); i++) 
        {
            
            if(((JlistModeloPedidos)modeloLista.get(i)).getArticuloSeleccionado().getDescripcion().equals(articuloBuscar))
            {
                 posicionLista=i;    
            }
        }
        
        return posicionLista;
    }
    private void calcularTotalArticulos()
    {
        Integer totalPedido=0;
        
        for (int i = 0; i < this.modeloLista.size(); i++) {
            
            totalPedido+=Integer.parseInt(((JlistModeloPedidos)modeloLista.getElementAt(i)).getImporteTotalArticulo());
        }
        
        this.jTextFieldCantidadArticulos.setText(totalPedido.toString());
    }
    
    private void completarFactura()
    {
        
        Cliente clienteFactura=(Cliente)this.jComboBoxClientes.getSelectedItem();
        int importeTotal=Integer.parseInt(this.jLabelImporteTotal.getText());
        //Albaran nuevoAlbaran=new Albaran();
        
        Facturas nuevaFactura=new Facturas(null, clienteFactura, importeTotal, null);
        
        
       
        
        
       
        
        
        for (int i = 0; i < modeloLista.size(); i++) {
            Articulos articuloRecuperado=((JlistModeloPedidos)modeloLista.get(i)).getArticuloSeleccionado();
            String descripcion=((JlistModeloPedidos)modeloLista.get(i)).getArticuloSeleccionado().getDescripcion();
            int cantidad=Integer.parseInt(((JlistModeloPedidos)modeloLista.get(i)).getCantidad());
            int importe=Integer.parseInt(((JlistModeloPedidos)modeloLista.get(i)).getImporteTotalArticulo());
           
            
            Lineasfact nuevaLineaFactura=new Lineasfact(articuloRecuperado, nuevaFactura, descripcion, cantidad, importe);
            
            nuevaFactura.addLinea(nuevaLineaFactura);
            
            
        }
        this.gesFacturas.updateFacturas(nuevaFactura);
        
        
    }
   

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel JLabelImporteArticulo;
    private javax.swing.JButton jButtonAddArticulo;
    private javax.swing.JButton jButtonCancelar;
    private javax.swing.JButton jButtonDeleteArticulo;
    private javax.swing.JButton jButtonOk;
    private javax.swing.JComboBox jComboBoxClientes;
    private javax.swing.JComboBox jComboBoxListaArticulos;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabelAlbaran;
    private javax.swing.JLabel jLabelCliente;
    private javax.swing.JLabel jLabelImporteTotal;
    private javax.swing.JLayeredPane jLayeredPane1;
    private javax.swing.JList jListLineasDeFactura;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JTextField jTextFieldCantidadArticulos;
    // End of variables declaration//GEN-END:variables
}
